package cn.kattomy.shop.utils;

import java.util.List;

/**
 * 封装翻页信息Page类
 * @author kattomy
 * @param pageNo 当前页码
 * @param totalItemNo 共有多少条记录
 * @param pageSize 每页显示多少条记录
 * @param list 当前页的 List
 */
public class PageBean<T> {

	//当前页码
	private int pageNo;
	
	//共有多少条记录
	private int totalItemNo;
	
	//当前页的 List
	private List<T> list;
	
	//每页显示多少条记录
	private int pageSize;

	//构造器中需要对 pageNo 进行初始化
	public PageBean(int pageNo, int pageSize) {
		super();
		this.pageNo = pageNo;
		this.pageSize = pageSize;
	}
	
	//需要校验一下
	public int getPageNo() {
		if(pageNo < 0)
			pageNo = 1;
		
		if(pageNo > getTotalPageNo()){
			pageNo = getTotalPageNo();
		}
		
		return pageNo;
	}
	
	public int getPageSize() {
		return pageSize;
	}
	
	public void setList(List<T> list) {
		this.list = list;
	}
	
	public List<T> getList() {
		return list;
	}
	
	/**
	 * 获取总的页码数
	 * @return
	 */
	public int getTotalPageNo(){
		
//		int totalPageNo =  (int)Math.ceil(totalItemNo / pageSize);
		
		int totalPageNo = totalItemNo / pageSize;
		
		if(totalItemNo % pageSize != 0){
			totalPageNo++;
		}
//		
		return totalPageNo;
	}
	
	public void setTotalItemNo(int totalItemNo) {
		this.totalItemNo = totalItemNo;
	}
	
	/**
	 * 判断是否存在下一页
	 * @return
	 */
	public boolean isHasNext(){
		if(getPageNo() < getTotalPageNo()){
			return true;
		}
		
		return false;
	}
	
	/**
	 * 判断是否存在前一页
	 * @return
	 */
	public boolean isHasPrev(){
		if(getPageNo() > 1){
			return true;
		}
		
		return false;
	}
	
	/**
	 * 获取当前页的前一页
	 * @return
	 */
	public int getPrevPage(){
		if(isHasPrev()){
			return getPageNo() - 1;
		}
		
		return getPageNo();
	}
	
	/**
	 * 获取当前页的下一页
	 * @return
	 */
	public int getNextPage(){
		if(isHasNext()){
			return getPageNo() + 1;
		}
		
		return getPageNo();
	}

}
